package com.google.project.client.Service;

import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.google.project.shared.ProjectTaskDTO;
import com.google.project.shared.TaskConstrainDTO;

@RemoteServiceRelativePath("ProjTask")
public interface ProjTaskService extends RemoteService {


	public List<ProjectTaskDTO> getListOfTask();

	public ProjectTaskDTO getTaskById(String taskId);

	public int getLastTaskId();

	public ProjectTaskDTO getTaskByTaskId(int TaskId);

	List<TaskConstrainDTO> getListConstrain(String taskId);

	List<ProjectTaskDTO> getTaskByUserID(String projectId, String userId);

	ProjectTaskDTO CreateTask(ProjectTaskDTO data, List<ProjectTaskDTO> listTask);

	void deleteListTask(List<ProjectTaskDTO> list, List<ProjectTaskDTO> listAll);

	void startWork(ProjectTaskDTO task);

	void updateTask(ProjectTaskDTO data);

	void updateWorkOfParent(ProjectTaskDTO subTask, Double work,
			List<ProjectTaskDTO> listTask);

	void updateTaskForClose(ProjectTaskDTO data, List<ProjectTaskDTO> listTask);

	void updatePlan(ProjectTaskDTO data, List<ProjectTaskDTO> list);

	List<Double> getDataForHightChart(ProjectTaskDTO data, List<Long> Datax);

	List<ProjectTaskDTO> getListOrderTaskByProjectId(String projectId);

	Double getTatolWorkAtDate(ProjectTaskDTO data, Long date);

	void updateForFinish(ProjectTaskDTO data);


	
}
